An emerging area of interest in the field of computer networking is the “Internet of Things” (IoT), which may be used by those in the art to refer to uniquely identifiable objects/things and their virtual representations in a network-based architecture. In particular, the next frontier in the evolution of the Internet is the ability to connect more than just computers and communications devices, but rather the ability to connect “objects” in general, such as lights, appliances, vehicles, window shades and blinds, doors, locks, etc.
A defining characteristic of many IoT nodes is their constrained nature in terms of computational resources. Notably, IoT nodes typically differ from traditional computing devices in that they often have very limited processing power, memory, computational speed and bandwidth, and power (e.g., a battery-powered sensor). In some cases, computations associated with IoT nodes may be offloaded to remote data centers and/or cloud-based services. For example, a sensor reading may be sent to a remote monitoring service for analysis via the Internet. However, as would be appreciated, doing so also increases the overall overhead of the network, as it requires communications back and forth between the analysis server/service and the endpoint node. Thus, recent efforts have been made to move these computations away from the cloud and into the “fog,” e.g., into the nodes/devices in or at the edge of the local network.